---===Random Player 0.93===---
      by Sinjin in 2020


---The text-field (song options)---
-BEATS
  Examples for valid beats: "Beats{4}", "Beats{16 8 8}", "Beats{6,12}"
  This represent the general key- and chord- changes in a song.
  A 6 for example, means that it will wait 6/16th then a chord and a key will be randomly
  picked, depending on other settings as well.

  The entries will always cycle, when the time for the last beat-entry is over,
  it starts at the first entry again.

-KEYS
  Example for valid keys: "Keys{C}", "Keys{C,F#-1}", "Keys{0 -6}", "Keys{C D E F}"
  This controls the base tuning in a song. This can either be random or cycled.

-CHORD
  Valid chords: "Chord{C D# G}", "Chord{0 3 7}", "Chord{C D# G:C,D,G#}"
  This lets you define notes within a scale. The simplest valid chord
  would look like: "Chord{C}" or "Chord{0}"
  You can either use notes or numbers. (See the options to toggle between them
  when transposing.)

  A separator can be any char but A-Z and 0-9 with a few more exceptions,
  like a + or - is used to determine positive and negative notes/numbers.

-The ":"-character within a chord adds another subchord or scale to it.
  Having one chord like: Chord{C E G : C# F G G#} will let you
  choose later in the instrument-settings, which one of these will be used.
***A special thing about this is. When you have more than one chord in your
  song, and all have the same amount of scales, like so:
  "Chord{C E  G : C G}
   Chord{C D# G : C G# : D# C1}"
  Notice the last chord has 3 scales in it. But the maximum here would be 2.
  There are 2 maximum scales to be used within the song. This is the
  Scale/Subchord-number in the instrument-settings tab, next to "Mode".

-The Char ";" or "'"
  From here the rest of the line is commented, example:
  "Keys{2} ;this is a comment"
  This isnt really necessary since the parser ignores other commands/text.
  "major Chord{{{C,E G}" The parser can use this.

-SELECTED TEXT / TRANSPOSE
  You can transpose notes inside selected text, just press F9-F12. (See
  keyboard shortcuts.) Also there is an option to let you show those notes
  on to the sheets.

Example Song:
 Chord{C E  G:C F# G}  'this is a comment
 Chord{C D# G:C D  G#} ;turn "random chords" off and it will play the first
                       ;chord(C E G) for 16 beats then it will change to minor
 Beats{16 8 8} ;turn "random keys" off and it will play C C E as base tones
 Keys {C  C E}



---The Sequencer in instrument-settings---
  Valid sequence: "0110 0111", "1201,2010", "121"
  Here you can say exactly how the instrument is played in 1/16th.
  "2": is a hold and nothing happens.
  "0": is a note-off. This is dependend on velocity setting/audio-button.
  "1": is a note-thru, it only plays if the generator sent a note-on.
       Imagine the sequence 1110 and the field "beats" in the instrument-
       settings is set to 4. That would only play the first note. 



---All keyboard shortcuts---
 Global:
  F5              - Play
  F8              - Stop
  F4              - Toggle sheet-window
  F6              - Toggle between instrument- and drum- windows
  Escape          - Quit program
                
  Ctrl+D          - Cascade opened windows
  Ctrl+T          - Tile opened windows
  Ctrl+O          - Open all windows
  Ctrl+E          - Close all windows
  Ctrl+W          - Reset opened window sizes
  Ctrl+F7         - Take a snapshot of all window states
  F7              - Restore the snapshot

  Alt+1           - Open Audio   -tab in all opened windows
  Alt+2           - Open Midi    -tab in all opened windows
  Alt+3           - Open Settings-tab in all opened windows

  Ctrl+F / Ctrl+R - Open the find&replace window
  F3              - Find next
  Ctrl+F3         - Find previous

  F9              - Transpose notes in selected text by -1
  F10             - Transpose notes in selected text by +1
  F11 / Ctrl+F9   - Transpose notes in selected text by -12
  F12 / Ctrl+F10  - Transpose notes in selected text by +12
  Ctrl-Q          - Insert "Chord {}" at the current cursor position

 When the sheet-window is active:
  Spacebar        - Toggle record keyjazz to text
  Backspace       - Deletes previous character at cursor position
  Page up/down    - Select chord to play
  * or / (Numpad) - Select octave for keyjazz
  Shift+click     - You can play the black keys by holding shift and clicking
                    on the notation-sheet



---Fun stuff---
  Set the tones per octave to -12 instead of 12 :)



---Known Bugs---
  The option to skip bars isn't working properly yet. A little work-around is
  if you set it 1 or 2 bars before the position you want.

(C) Sinjin
